<?php session_start();
$host = $_SERVER['HTTP_HOST'];
if ($_SERVER['SERVER_NAME'] == 'localhost'){$uri="/kalender";}else{$uri="";}
if (!isset($_SESSION['id_user']) || $_SESSION['id_user']=='') {
	echo "<script language=Javascript> location.href='http://$host$uri/index.php'; </script>";	
}else{
		
	if (!is_object($bd)){	
		//me conecto a la base de datos
		require("../globals/Db.class.php");
		require("../globals/Conf.class.php");
		$bd=Db::getInstance();	
	}
	if (!is_object($util)){	
		include("../globals/Util.class.php");
		$util=Util::getInstance();
	}
					
	$id = $bd->san($_POST["idFac"]);
	$estado = $bd->san($_POST["estado"]);
	
	if ($estado=='F'){
		$query = "UPDATE facturas SET estado = 'F' where id = $id and estado='E'";
		$result = $bd->eje($query);
		if ($result){
			echo "msg:ok";
		}else{
			echo "msg:nok";
		}
	}else if ($estado=='A'){
		// si estoy anulando una factura, tengo que replicar la OT a la que estaba asociada.
		// los valores de los items tienen que estar acordes a los valores al momento de anularse la factura.
		
		//cambio el estado de la FACTURA a ANULADA
		$query = "UPDATE facturas SET estado = 'A' where id = $id and estado='E'";
		$result = $bd->eje($query);
		
		//necesito el ID de la OT que estaba asociada a esta Factura.
		$query = "select id from ordenes_trabajo where id_factura = $id;";
		$result_aux = $bd->eje($query);
		$row = $bd->fila($result_aux);
		$idOT_asociada = $row["id"];
		
		if ($result){
			echo("se updateo bien la factura    <br/>");
			//creo una nueva ORDEN DE TRABAJO a raiz de la correspondiente a la Factura que se esta anulando.
			$query = "insert into ordenes_trabajo (estado, id_cliente, fecha_creacion) select 'A', id_cliente, now() from ordenes_trabajo where id_factura = $id;";
			$result1 = $bd->eje($query);
		}
		
		//armo las relaciones de la OT anterior con esta, de documentos e items.
		if ($result1){			
			$idOT_nueva = $bd->lastID();
			
			echo("se creo bien la nueva OT <br/>$idOT_nueva ");
			
			//replico las relaciones de los DOCS de la OT anterior a la OT nueva.
			$rel_docs = $util->relacionarDocsFromThisOT($bd, $idOT_asociada, $idOT_nueva);
			
			//la parte de los items es mas jodida, hay que replicar los items y las relaciones.
			$repl_NC = $util->replicarNCFromThisOT($bd, $idOT_asociada, $idOT_nueva);
			$repl_Items = $util->replicarItemsFromThisOT($bd, $idOT_asociada, $idOT_nueva);			
		}
		
		
		if ($rel_docs && $repl_NC && $repl_Items){
			
			echo("se crearon bien todas las relaciones <br/>");
			
			$query = "UPDATE ordenes_trabajo SET estado = 'CA' where id_factura = $id";
			$result = $bd->eje($query);
			if ($result){
				echo "msg:ok";	
				echo("se cambió bien el estado de la OT asociada <br/>");
			}else{
				echo "msg:nok";
			}
		}else{
			echo "msg:nok";
		}
	}		
}
?>